package SecondeStage.ChangYongLei.StringBuffer;

public class StringBuffer01 {
    public static void main(String[] args) {
        // 1.StringBuffer的直接父类是AbstractStringBuilder
        // 2.StringBuffer 实现了 Serializable,即StringBuffer的对象可以串行化
        // 3.在父类中 AbstractStringBuilder有属性 char[] value,不是final修饰
        // 该value 数组存放字符串内容，引出存放在堆中
        // 4.StringBuffer 是final类，不能被继承
        // 5.因为StringBuffer的字符内容是存放在 char[] value,所有的变化不用每次都更换地址（即创建新对象）

        // String VS StringBuffer
        // String保存的是字符串常量，里面的值不能更改，每次String类的更新实际上就是更改地址，效率较低
        // StringBuffer保存的是字符串变量，里面的值可以更改，每次StringBuffer的更新实际上可以更新内容，不用更新地址，效率较高

        // 构造器的使用
        // 1. 创造一个大小为16的 char[]，用于存放字符内容
        StringBuffer stringBuffer =new StringBuffer();
        // 2. 通过构造器指定 char[]的大小
        StringBuffer stringBuffer2 =new StringBuffer(100);
        // 3. 通过给一个String创建一个StringBuffer,char[]的长度是 hello.length() + 16。
        StringBuffer stringBuffer3 =new StringBuffer("hello");

    }
}
